package com.fintech.third.model.moxie.carriesv2;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * Created by zhangliang on 17/2/28.
 */
public class MXCallAnalysisPoint implements Serializable {

	private static final long serialVersionUID = 1L;

	@JsonProperty("call_cnt_1m")
	private Long callCnt1Month;

	@JsonProperty("call_cnt_3m")
	private Long callCnt3Month;

	@JsonProperty("call_cnt_6m")
	private Long callCnt6Month;

	@JsonProperty("avg_call_cnt_3m")
	private Double avgCallCnt3Month;

	@JsonProperty("avg_call_cnt_6m")
	private Double avgCallCnt6Month;

	@JsonProperty("call_time_1m")
	private Long callTime1Month;

	@JsonProperty("call_time_3m")
	private Long callTime3Month;

	@JsonProperty("call_time_6m")
	private Long callTime6Month;

	@JsonProperty("avg_call_time_3m")
	private Long avgCallTime3Month;

	@JsonProperty("avg_call_time_6m")
	private Long avgCallTime6Month;

	@JsonProperty("call_analysis_dial_point")
	private MXCallAnalysisDialPoint callAnalysisDialPoint;

	@JsonProperty("call_analysis_dialed_point")
	private MXCallAnalysisDialedPoint callAnalysisDialedPoint;

	public Long getCallCnt1Month() {
		return callCnt1Month;
	}

	public void setCallCnt1Month(Long callCnt1Month) {
		this.callCnt1Month = callCnt1Month;
	}

	public Long getCallCnt3Month() {
		return callCnt3Month;
	}

	public void setCallCnt3Month(Long callCnt3Month) {
		this.callCnt3Month = callCnt3Month;
	}

	public Long getCallCnt6Month() {
		return callCnt6Month;
	}

	public void setCallCnt6Month(Long callCnt6Month) {
		this.callCnt6Month = callCnt6Month;
	}

	public Double getAvgCallCnt3Month() {
		return avgCallCnt3Month;
	}

	public void setAvgCallCnt3Month(Double avgCallCnt3Month) {
		this.avgCallCnt3Month = avgCallCnt3Month;
	}

	public Double getAvgCallCnt6Month() {
		return avgCallCnt6Month;
	}

	public void setAvgCallCnt6Month(Double avgCallCnt6Month) {
		this.avgCallCnt6Month = avgCallCnt6Month;
	}

	public Long getCallTime1Month() {
		return callTime1Month;
	}

	public void setCallTime1Month(Long callTime1Month) {
		this.callTime1Month = callTime1Month;
	}

	public Long getCallTime3Month() {
		return callTime3Month;
	}

	public void setCallTime3Month(Long callTime3Month) {
		this.callTime3Month = callTime3Month;
	}

	public Long getCallTime6Month() {
		return callTime6Month;
	}

	public void setCallTime6Month(Long callTime6Month) {
		this.callTime6Month = callTime6Month;
	}

	public Long getAvgCallTime3Month() {
		return avgCallTime3Month;
	}

	public void setAvgCallTime3Month(Long avgCallTime3Month) {
		this.avgCallTime3Month = avgCallTime3Month;
	}

	public Long getAvgCallTime6Month() {
		return avgCallTime6Month;
	}

	public void setAvgCallTime6Month(Long avgCallTime6Month) {
		this.avgCallTime6Month = avgCallTime6Month;
	}

	public MXCallAnalysisDialPoint getCallAnalysisDialPoint() {
		return callAnalysisDialPoint;
	}

	public void setCallAnalysisDialPoint(MXCallAnalysisDialPoint callAnalysisDialPoint) {
		this.callAnalysisDialPoint = callAnalysisDialPoint;
	}

	public MXCallAnalysisDialedPoint getCallAnalysisDialedPoint() {
		return callAnalysisDialedPoint;
	}

	public void setCallAnalysisDialedPoint(MXCallAnalysisDialedPoint callAnalysisDialedPoint) {
		this.callAnalysisDialedPoint = callAnalysisDialedPoint;
	}

	public static class MXRiskPointBuilder {

		private MXCallAnalysisPoint riskPoint;

		public MXRiskPointBuilder() {
			this.riskPoint = new MXCallAnalysisPoint();
		}

		public static MXRiskPointBuilder newBuilder() {
			return new MXRiskPointBuilder();
		}

		public MXRiskPointBuilder withCallCnt1Month(long callCnt1Month) {
			riskPoint.callCnt1Month = callCnt1Month;
			return this;
		}

		public MXRiskPointBuilder withCallCnt3Month(long callCnt3Month) {
			riskPoint.callCnt3Month = callCnt3Month;
			return this;
		}

		public MXRiskPointBuilder withCallCnt6Month(long callCnt6Month) {
			riskPoint.callCnt6Month = callCnt6Month;
			return this;
		}

		public MXRiskPointBuilder withAvgCallCnt3Month(double avgCallCnt3Month) {
			riskPoint.avgCallCnt3Month = avgCallCnt3Month;
			return this;
		}

		public MXRiskPointBuilder withAvgCallCnt6Month(double avgCallCnt6Month) {
			riskPoint.avgCallCnt6Month = avgCallCnt6Month;
			return this;
		}

		public MXRiskPointBuilder withCallTime1Month(long callTime1Month) {
			riskPoint.callTime1Month = callTime1Month;
			return this;
		}

		public MXRiskPointBuilder withCallTime3Month(long callTime3Month) {
			riskPoint.callTime3Month = callTime3Month;
			return this;
		}

		public MXRiskPointBuilder withCallTime6Month(long callTime6Month) {
			riskPoint.callTime6Month = callTime6Month;
			return this;
		}

		public MXRiskPointBuilder withAvgCallTime3Month(long avgCallTime3Month) {
			riskPoint.avgCallTime3Month = avgCallTime3Month;
			return this;
		}

		public MXRiskPointBuilder withAvgCallTime6Month(long avgCallTime6Month) {
			riskPoint.avgCallTime6Month = avgCallTime6Month;
			return this;
		}

		public MXCallAnalysisPoint build() {
			return riskPoint;
		}
	}
}
